1. Technical Field of the Invention
This invention pertains to an interface system and method. More particularly, it relates to a system and method for managing locks allowing asynchronous updates to a shared resource without task switching, wait or CPU spin.
2. Background Art
Computing systems provide structures and methods for protecting updates to data structures and objects contained in computer memory. This is typically done by updating a shared resource held in computer memory while holding an exclusive lock (thus guaranteeing an atomic update of the resource). Such systems generally require that tasks requiring access to data structures or objects wait to update the data structure or object until the exclusive lock is granted, thus often requiring suspension of the waiting tasks under circumstances which may cause introduction of an error into the system.
Consequently, there is a need in the art for a system and method for eliminating or reducing task waiting for locks to improve performance of the system. It is also desirable to allow for updates to be made to a shared resource without making a task wait for an exclusive lock, if the task is prevented for some reason or another from waiting. Such a task may not be able to be suspended while waiting for a lock without introducing an error of some kind into the system.
It is an object of the invention to provide an improved system and method for managing locks.
It is a further object of the invention to provide a system and method for managing locks with improved performance.
It is a further object of the invention to provide a system and method for managing locks which avoids formal task suspension or CPU spins.
It is a further object of the invention to provide a system and method for managing locks which avoids costly lock contention overhead.
It is a further object of the invention to provide a system and method for managing locks both synchronously and asynchronously.
In accordance with the system and method of the invention, applications update resources with exclusive locking without task suspension or task switching by selectively queuing update requests for execution on behalf of a first task by a second task holding a required lock.
Other features and advantages of this invention will become apparent from the following detailed description of the presently preferred embodiment of the invention, taken in conjunction with the accompanying drawings.